package com.pxmeta.circle.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pxmeta.circle.entity.Circle;
import com.pxmeta.circle.entity.dto.UpdateCircleDTO;

import java.util.List;

/**
 * 圈子Service接口
 *
 * @author wcl
 * @date 2022-04-17
 */
public interface ICircleService extends IService<Circle>
{


    /**
     * 获取用户圈子列表
     * @return
     */
    List<Circle> getUserCircle(Long userId);


    /**
     * 获取圈子列表
     * @param type
     * @return
     */
    List<Circle> getCircleList(Long userId, Integer type, Integer page, Integer size,String name);


    /**
     * 创建圈子
     * @param circle
     * @param userId
     */
    void create(Circle circle, Long userId);


    /**
     * 获取系统圈子
     * @return
     */
    Circle getSystemCircle();


    /**
     * 获取圈子详情
     * @param circleId
     * @return
     */
    Circle getDetail(Long circleId);


    /**
     * 获取系统圈子列表
     * @param type
     * @return
     */
    List<Circle> getSysCircleList(Integer type);

    /**
     * 更新圈子
     * @param dto
     * @param userId
     */
    void updateCircle(UpdateCircleDTO dto, Long userId);


    /**
     * 获取圈子列表
     * @param page
     * @param size
     * @param type
     * @param keyword
     * @return
     */
    IPage<Circle> getList(Integer page, Integer size, Integer type, String keyword);


    /**
     * 获取学校圈子
     * @return
     */
    Circle getBySchoolName(String schoolName);


    /**
     * 用户学生认证成功后处理当前加入的圈子
     * @param userId
     */
    void handleVerifyStudentSuccess(Long userId);
}
